package com.jiukuaidao.zhulin.expand.baidu.push;

import android.content.Context;

import com.baidu.android.pushservice.PushMessageReceiver;

import java.util.List;

/**
 * Author : BinarySatan
 * Date : 2016/6/1
 * Description :
 */
public class PushReceiver extends PushMessageReceiver {

    public static final int SUCCESS_BIND = 0; //绑定成功
    public static final int ERROR_NET = 10001; //当前网络不可用,检查网络
    public static final int ERROR_SERVER = 10002; //服务不可用,连接server失败
    public static final int ERROR_SERVER_503 = 10003; //服务不可用,503错误
    public static final int ERROR_SERVER_INTERNAL = 30600; //服务内部错误
    public static final int ERROR_INTEGRATED = 10101; //应用集成方式错误,请检查各项声明和权限
    public static final int ERROR_UNKNOWN = 20001; //未知错误
    public static final int ILLEGAL_REQUEST = 30601; //非法函数请求，请检查您的请求内容
    public static final int ILLEGAL_REQUEST_PARAMS = 30602; //请求参数错误，请检查您的参数
    public static final int ILLEGAL_REQUEST_CONTROLL = 30603; //非法构造请求，服务端验证失败
    public static final int NO_DATA_REQUEST = 30605; //请求的数据在服务端不存在
    public static final int NO_BIND = 30608; //绑定关系不存在或未找到
    public static final int BIND_LIMIT_EXCEEDED = 30609; //一个百度账户绑定设备超出个数限制(多台设备登录同一个百度账户)
    public static final int FORBID = 30612; //百度账户绑定应用时被禁止，需要白名单授权

    /**
     * 调用PushManager.startWork后，sdk将对push
     * server发起绑定请求，这个过程是异步的。绑定请求的结果通过onBind返回。 如果您需要用单播推送，需要把这里获取的channel
     * id和user id上传到应用server中，再调用server接口用channel id和user id给单个手机或者用户推送。
     *
     * @param context
     *            BroadcastReceiver的执行Context
     * @param errorCode
     *            绑定接口返回值，0 - 成功
     * @param appid
     *            应用id。errorCode非0时为null
     * @param userId
     *            应用user id。errorCode非0时为null
     * @param channelId
     *            应用channel id。errorCode非0时为null
     * @param requestId
     *            向服务端发起的请求id。在追查问题时有用；
     * @return none
     */
    @Override
    public void onBind(Context context, int errorCode, String appid, String userId, String channelId, String requestId) {

        if (errorCode == 0) { //绑定成功

        }


    }

    /**
     * stopWork后回到
     *
     * @param context
     * @param errorCode
     * @param requestId
     */
    @Override
    public void onUnbind(Context context, int errorCode, String requestId) {

        if (errorCode == 0) { //解绑成功

        } else { //失败

        }

    }

    @Override
    public void onSetTags(Context context, int errorCode, List<String> sucessTags, List<String> failTags, String requestId) {

        if (errorCode == 0) { //某些tage设置成功,非0所有tag设置均失败

        } else {

        }


    }

    @Override
    public void onDelTags(Context context, int errorCode, List<String> sucessTags, List<String> failTags, String requestId) {
    }

    @Override
    public void onListTags(Context context, int errorCode, List<String> tags, String requestId) {
        //tags 当前应用设置的所有tag
    }

    /**
     * 接受透传消息
     *
     * @param context
     * @param message
     * @param customContentString
     */
    @Override
    public void onMessage(Context context, String message, String customContentString) {
    }

    /**
     * 接受通知点击的函数
     *
     * @param context
     * @param title
     * @param description
     * @param customContentString
     */
    @Override
    public void onNotificationClicked(Context context, String title, String description, String customContentString) {
    }

    /**
     * 接收通知到达的函数
     *
     * @param context
     * @param title
     * @param description
     * @param customContentString
     */
    @Override
    public void onNotificationArrived(Context context, String title, String description, String customContentString) {
    }
}
